home *** CD-ROM | disk | FTP | other *** search
/ Linux Cubed Series 3: Developer Tools / Linux Cubed Series 3 - Developer Tools.iso / devel / debugger / ddd-1.000 / ddd-1 / ddd-1.4b / vsllib / DEMOS / math < prev    next >
Encoding:
Text File  |  1995-05-01  |  1.8 KB  |  79 lines

  1. #!vsl
  2.  
  3. // $Id: math,v 1.1.1.1 1995/05/01 15:48:50 zeller Exp $
  4. // a few math demos
  5.  
  6. // $Log: math,v $
  7. # Revision 1.1.1.1  1995/05/01  15:48:50  zeller
  8. # DDD 0.9 distribution
  9. #
  10. // Revision 9.3  1993/06/25  12:01:47  zeller
  11. // Fix: Kommentare Log-Datei angepasst
  12. //
  13. // Revision 9.2  1993/05/22  20:22:40  zeller
  14. // %Q% added by apply-q-flag.sh 1.5
  15. //
  16. // Revision 9.1  1991/07/08  06:01:53  zeller
  17. // Installierte Version
  18. // 
  19. // Revision 8.1  1991/07/06  15:04:55  zeller
  20. // Installierte Version
  21. // 
  22. // Revision 4.1  1991/05/25  12:52:41  zeller
  23. // Neue Version mit folgenden Eigenschaften:
  24. // Let- und Where-Konstrukten;
  25. // Lokalen und globalen Funktionen, Overloading;
  26. // Erweiterten Fehlermeldungen.
  27. // 
  28. // Revision 3.1  1991/02/27  02:11:11  zeller
  29. // Umstellung auf neue Syntax (fast ganz wieder die alte)
  30. // 
  31. // Revision 1.5  1991/02/10  18:25:23  zeller
  32. // Letzte Definition muss global sein, um nicht geloescht zu werden
  33. // 
  34. // Revision 1.4  1991/02/04  20:20:45  zeller
  35. // digit(), num() jetzt in std.vsl
  36. // 
  37. // Revision 1.3  1991/01/23  19:21:03  zeller
  38. // Umstellung auf Pattern-Matching
  39. // 
  40. // Revision 1.2  1991/01/23  18:18:54  zeller
  41. // fak() mit Matching auf Konstanten neu definiert
  42. // 
  43. // Revision 1.1  1991/01/23  18:12:09  zeller
  44. // Initial revision
  45. // 
  46.  
  47. #include <std.vsl>
  48.  
  49. start = 0;
  50. end = 12;
  51.  
  52. // factorial
  53. fak(0) = 1;
  54. fak(1) = 1;
  55. fak(a) = a * fak(a-1);
  56.  
  57. // list of factorials
  58. faks(end) = 0;
  59. faks(a) = 
  60.   num(a) & "! = " & num(fak(a))
  61. | faks(a + 1);
  62. faks() = faks(start);
  63.  
  64. // powers
  65. power(a, 0) = 1;
  66. power(a, 1) = a;
  67. power(a, b) = a * power(a, b-1);
  68.  
  69. // list of powers
  70. powers(end, b) = 0;
  71. powers(a, b) = 
  72.   num(a) & "^" & num(b) & " = " & num(power(a, b))
  73. | powers(a + 1, b);
  74. powers(b) = powers(start, b);
  75.  
  76. math_main() = 
  77.     " " & faks() & " " & powers(2) & " " & powers(3) & " " & powers(4);
  78. math_main(...) -> math_main();
  79.